﻿@model HS.Domain.EF.Condicion

@using HS.Domain.EF;
@using Newtonsoft.Json;

<div id="dlg_CondicionCantidadServicios" title="Condición por Cantidad de Servicios">
    <div class="col-sm-12">
        <div class="col-sm-12 no-padding">
            <div class="col-sm-12 no-padding">
                <label>Servicio</label>
                <input id="ddl_CantServ_Servicio" data-role="dropdownlist" data-auto-bind="false" data-value-primitive="true" data-option-label="Seleccione"
                    data-bind="value: CantServicio.IdServicio, source: serviciosDS, events: { change: OnChange_Service }" data-value-field="IdServicio" data-text-field="Nombre" style="width: 100%" />
            </div>
        </div>

        <div class="col-sm-12 no-padding">
            <div class="col-sm-12 no-padding">
                <label>SubTipo</label>
            </div>
            <div class="col-sm-12 no-padding">
                <input id="ddl_CantServ_SubTipo" data-role="dropdownlist" data-auto-bind="false" data-value-primitive="true" data-option-label="Seleccione"
                    data-bind="value: CantServicio.IdSubtipo, source: subtiposDS, enabled: isEnabled_Service, events: { change: OnChange_Subtipo }" data-value-field="IdSubtipo" data-text-field="Nombre" style="width: 100%" />
            </div>
        </div>

        <div class="space-10"></div>

        <div class="col-sm-12 well">
            <div class="row col-sm-12">
                <label>Condición</label>
            </div>

            <div class="row col-sm-12">
                <div class="col-sm-9">
                    <label>Cantidad de servicios para cumplir la condición </label>
                </div>
                <div class="col-sm-3 no-padding">
                    <input type="text" id="txt_CantServ_CantServicios" class="form-control focused align-right" data-bind="value: CantServicio.Cantidad, enabled: isEnabled_Subtipo">
                </div>
            </div>

            <div class="row col-sm-12">
                <label class="col-sm-12 no-padding">El benecio se otorga cuando:</label>

                <div class="col-sm-12">
                    <label class="checkbox inline">
                        <input type="checkbox" id="chk_CantServ_CumpleCondicion" data-bind="checked: CantServicio.CumpleCondicion, enabled: isEnabled_Subtipo">
                        Cada vez que se cumpla la condición
                    </label>

                    <label class="checkbox inline">
                        <input type="checkbox" id="chk_CantServ_MayorCondicion" data-bind="checked: CantServicio.MayorCondicion, enabled: isEnabled_Subtipo">
                        El valor es mayor o igual a la condición
                    </label>
                </div>
            </div>
        </div>

        <div class="col-sm-12 align-center">
            <div class="space-4"></div>
            <button id="btn_CantServ_Aceptar" class="btn btn-sm btn-primary" data-bind="click: OnAccept">Aceptar</button>
            <button id="btn_CantServ_Cancelar" class="btn btn-sm btn-default" data-bind="click: OnCancel">Cancelar</button>
        </div>
    </div>
</div>

<script>
    var CondicionCantidadServicioVM;

    $(document).ready(function () {
        //$("#dlg_CondicionCantidadServicios").on("dialogopen", function (e, ui) {
            CondicionCantidadServicioVM = new kendo.observable({
                CantServicio: @Html.Raw(JsonConvert.SerializeObject(Model, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })),
                serviciosDS: AjaxParamsActionPost('@Url.Action("GetEntities", "Servicio")', { 'rowStatus': true }),
                subtiposDS: [],
                isEnabled_Service: false,
                isEnabled_Subtipo: false,
                toJSON: function () {
                    return kendo.data.ObservableObject.prototype.toJSON.call(this.CantServicio);
                },

                /* start: Control events */
                OnInit: function () {
                    this.set('CantServicio', AjaxActionGet('@Url.Action("CreateEntity", "Condicion")'));
                    this.set('isEnabled_Service', false);
                },
                OnChange_Service: function () {
                    debugger
                    var data = AjaxParamsActionPost('@Url.Action("GetEntitiesByService", "Subtipo")', {
                        'idServicio': $('#ddl_CantServ_Servicio').data('kendoDropDownList').value(),
                        'rowStatus': true
                    });

                    if (data.length > 0 && data != null) {
                        this.set('subtiposDS', data);
                        this.set('isEnabled_Service', true);
                    } else {
                        $('#ddl_CantServ_SubTipo').data('kendoDropDownList').select(0);
                        this.set('isEnabled_Service', false);
                    }
                },
                OnChange_Subtipo: function () {
                    $('#ddl_CantServ_SubTipo').data('kendoDropDownList').select() > 0 ? this.set('isEnabled_Subtipo', true) : this.set('isEnabled_Subtipo', false);
                },
                OnAccept: function () {
                    debugger;
                    var $ddl_Servicio = $('#ddl_CantServ_Servicio').data('kendoDropDownList');
                    var $ddl_Subtipo = $('#ddl_CantServ_SubTipo').data('kendoDropDownList');

                    if ($ddl_Servicio.value() != '') {
                        if ($ddl_Subtipo.value() != '') {
                            this.CantServicio.set('IdTipoCondicion', SeleccionarCondicionVM.Helper.get('IdTipoCondicion'));
                            this.CantServicio.set('Codigo', SetNewCode(PromocionVM.condicionesResultDS, 'Codigo'));

                            this.CantServicio.Servicio.set('IdServicio', $ddl_Servicio.value());
                            this.CantServicio.Servicio.set('Nombre', $ddl_Servicio.text());
                            
                            this.CantServicio.Subtipo.set('IdSubtipo', $ddl_Subtipo.value());
                            this.CantServicio.Subtipo.set('Nombre', $ddl_Subtipo.text());

                            PromocionVM.condicionesResultDS.push(this.toJSON());

                            $('#dlg_CondicionCantidadServicios').dialog('close');
                        } else {
                            alert('Debe seleccionar un Subtipo');
                        }
                    } else {
                        alert('Debe seleccionar un Servicio');
                    }
                },
                OnCancel: function () {
                    this.OnInit();
                    SeleccionarCondicionVM.Helper.set('IdTipoCondicion', null);
                    $('#dlg_CondicionCantidadServicios').dialog('close');
                }
                /* end: Control events*/
            });

            kendo.bind('#dlg_CondicionCantidadServicios', CondicionCantidadServicioVM);
        });
    //});
</script>
